#include "widget.h"
#include "ui_widget.h"
#include <QTabWidget>
#include <QLabel>
#include <QDebug>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    tab_widget=new QTabWidget(this);
    tab_widget->setGeometry(50,50,600,400);
    QWidget *w1=new QWidget(tab_widget);
    tab_widget->addTab(w1,"标签1");

    QWidget *w2=new QWidget(tab_widget);
    tab_widget->addTab(w2,"标签2");

    QLabel *label1=new QLabel(w1);
    label1->setText("这是标签1");

    QLabel *label2=new QLabel(w2);
    label2->setText("这是标签2");

    button_insert=new QPushButton(this);
    button_insert->setGeometry(100,500,150,50);
    button_insert->setText("添加新的标题页");

    button_delete=new QPushButton(this);
    button_delete->setGeometry(300,500,150,50);
    button_delete->setText("删除选中标题页");

    connect(button_insert,&QPushButton::clicked,this,&Widget::handler_insert);
    connect(button_delete,&QPushButton::clicked,this,&Widget::handler_delete);
    connect(tab_widget,&QTabWidget::currentChanged,this,&Widget::handler_change);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::handler_insert()
{
    //添加新的标签页
    //获取到标签页的数量
    int count=tab_widget->count();
    //构造一个新的标签页
    QWidget *w=new QWidget();
    //将标签页添加至标签控件中,并设置名称
    tab_widget->addTab(w,QString("标签页")+QString::number(count+1));
    //在这个标签页中添加显示内容
    QLabel *label=new QLabel(w);
    //初始化内容
    label->setText(QString("标签页")+QString::number(count+1));
    //设置大小
    label->resize(200,50);
    //添加完成之后，自动选中这个新的标签页,这里是用的下标，所以第count-1个标签页的下标是count
    tab_widget->setCurrentIndex(count);
}

void Widget::handler_delete()
{
    //删除选中的标签页
    //获取当前选中的标签页的下标
    int index=tab_widget->currentIndex();
    //删除这个标签页
    tab_widget->removeTab(index);
}

void Widget::handler_change(int num)
{
    qDebug()<<"当前选中的标签页的下标是:"<<num;
}

